package com.quaidi.smartlocker.dto;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 包裹存放请求DTO
 * 
 * @author QuaiDi
 * @since 2025-08-26
 */
public class PackageDepositRequest {

    /**
     * 快递单号
     */
    @NotBlank(message = "快递单号不能为空")
    private String trackingNumber;

    /**
     * 寄件人姓名
     */
    @NotBlank(message = "寄件人姓名不能为空")
    private String senderName;

    /**
     * 寄件人电话
     */
    @NotBlank(message = "寄件人电话不能为空")
    private String senderPhone;

    /**
     * 收件人姓名
     */
    @NotBlank(message = "收件人姓名不能为空")
    private String recipientName;

    /**
     * 收件人电话
     */
    @NotBlank(message = "收件人电话不能为空")
    private String recipientPhone;

    /**
     * 收件人地址
     */
    private String recipientAddress;

    /**
     * 快递公司ID
     */
    @NotNull(message = "快递公司ID不能为空")
    private Long expressCompanyId;

    /**
     * 包裹尺寸（用于选择合适的柜格）：SMALL/MEDIUM/LARGE
     */
    @NotBlank(message = "包裹尺寸不能为空")
    private String packageSize;

    // Getter and Setter methods
    public String getTrackingNumber() {
        return trackingNumber;
    }

    public void setTrackingNumber(String trackingNumber) {
        this.trackingNumber = trackingNumber;
    }

    public String getSenderName() {
        return senderName;
    }

    public void setSenderName(String senderName) {
        this.senderName = senderName;
    }

    public String getSenderPhone() {
        return senderPhone;
    }

    public void setSenderPhone(String senderPhone) {
        this.senderPhone = senderPhone;
    }

    public String getRecipientName() {
        return recipientName;
    }

    public void setRecipientName(String recipientName) {
        this.recipientName = recipientName;
    }

    public String getRecipientPhone() {
        return recipientPhone;
    }

    public void setRecipientPhone(String recipientPhone) {
        this.recipientPhone = recipientPhone;
    }

    public String getRecipientAddress() {
        return recipientAddress;
    }

    public void setRecipientAddress(String recipientAddress) {
        this.recipientAddress = recipientAddress;
    }

    public Long getExpressCompanyId() {
        return expressCompanyId;
    }

    public void setExpressCompanyId(Long expressCompanyId) {
        this.expressCompanyId = expressCompanyId;
    }

    public String getPackageSize() {
        return packageSize;
    }

    public void setPackageSize(String packageSize) {
        this.packageSize = packageSize;
    }
}